home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0"?>
- <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
- <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
- <!-- $Revision: 1.2.2.5 $ -->
-
- <!--
- Copyright 2002-2004 The Apache Software Foundation
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
- <modulesynopsis metafile="mod_example.xml.meta">
-
- <name>mod_example</name>
- <description>Illustrates the Apache module API</description>
- <status>Experimental</status>
- <sourcefile>mod_example.c</sourcefile>
- <identifier>example_module</identifier>
-
- <summary>
- <note type="warning">
- This document has not been updated
- to take into account changes made in the 2.0 version of the
- Apache HTTP Server. Some of the information may still be
- relevant, but please use it with care.
- </note>
-
- <p>The files in the <code>src/modules/example directory</code>
- under the Apache distribution directory tree are provided as an
- example to those that wish to write modules that use the Apache
- API.</p>
-
- <p>The main file is <code>mod_example.c</code>, which
- illustrates all the different callback mechanisms and call
- syntaxes. By no means does an add-on module need to include
- routines for all of the callbacks - quite the contrary!</p>
-
- <p>The example module is an actual working module. If you link
- it into your server, enable the "example-handler" handler for a
- location, and then browse to that location, you will see a
- display of some of the tracing the example module did as the
- various callbacks were made.</p>
- </summary>
-
- <section id="compiling"><title>Compiling the example module</title>
-
- <p>To include the example module in your server, follow the
- steps below:</p>
-
- <ol>
- <li>
- Uncomment the "AddModule modules/example/mod_example" line
- near the bottom of the <code>src/Configuration</code> file.
- If there isn't one, add it; it should look like this:
- <example>
- AddModule modules/example/mod_example.o
- </example>
- </li>
-
- <li>Run the <code>src/Configure</code> script
- ("<code>cd src; ./Configure</code>"). This will
- build the Makefile for the server itself, and update the
- <code>src/modules/Makefile</code> for any additional modules
- you have requested from beneath that subdirectory.</li>
-
- <li>Make the server (run "<code>make</code>" in the
- <code>src</code> directory).</li>
- </ol>
-
- <p>To add another module of your own:</p>
-
- <ol type="A">
- <li><code>mkdir src/modules/<em>mymodule</em></code></li>
-
- <li><code>cp src/modules/example/*
- src/modules/<em>mymodule</em></code></li>
-
- <li>Modify the files in the new directory.</li>
-
- <li>Follow steps [1] through [3] above, with appropriate
- changes.</li>
- </ol>
- </section>
-
- <section id="using"><title>Using the <code>mod_example</code> Module</title>
-
- <p>To activate the example module, include a block similar to
- the following in your <code>srm.conf</code> file:</p>
- <example>
- <Location /example-info><br />
- SetHandler example-handler<br />
- </Location>
- </example>
-
- <p>As an alternative, you can put the following into a <a
- href="core.html#accessfilename"><code>.htaccess</code></a> file
- and then request the file "test.example" from that location:</p>
- <example>
- AddHandler example-handler .example
- </example>
-
- <p>After reloading/restarting your server, you should be able
- to browse to this location and see the brief display mentioned
- earlier.</p>
- </section>
-
- <directivesynopsis>
- <name>Example</name>
- <description>Demonstration directive to illustrate the Apache module
- API</description>
- <syntax>Example</syntax>
- <contextlist><context>server config</context>
- <context>virtual host</context><context>directory</context>
- <context>.htaccess</context></contextlist>
-
- <usage>
- <p>The <directive>Example</directive> directive just sets a demonstration
- flag which the example module's content handler displays. It
- takes no arguments. If you browse to an URL to which the
- example content-handler applies, you will get a display of the
- routines within the module and how and in what order they were
- called to service the document request. The effect of this
- directive one can observe under the point "<code>Example
- directive declared here: YES/NO</code>".</p>
- </usage>
- </directivesynopsis>
-
- </modulesynopsis>
-